package cc.rengu.redp.system.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * @author System
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("T_ORG")
public class Organization implements Serializable {

    private static final long serialVersionUID = 1L;

    public static final String STATUS_CANCELED = "03";

    @TableId(value = "ID")
    private Long id;

    /**
     * 法人行标识
     */
    @TableField("TENANT_ID")
    private String tenantId;

    /**
     * 机构类型
     *  00-银行机构
     *  01-代理机构虚拟机构
     */
    @TableField("ORG_TYPE")
    private String orgType;

    /**
     * 机构编码
     */
    @TableField("ORG_CODE")
    private String orgCode;

    /**
     * 机构名称
     */
    @TableField("ORG_NAME")
    private String orgName;

    /**
     * 上级机构编码
     */
    @TableField("PARENT_ORG_CODE")
    private String parentOrgCode;

    /**
     * 上级机构ID
     */
    @TableField("PARENT_ORG_ID")
    private Long parentOrgId;

    /**
     * 机构链
     */
    @TableField("ORG_CHAIN")
    private String orgChain;

    /**
     * 联行号
     */
    @TableField("BANK_BRANCH_CODE")
    private String bankBranchCode;

    /**
     * 关联机构标识
     */
    @TableField("RELATED_INST_ID")
    private String relatedInstId;

    /**
     * 内部银行代码
     */
    @TableField("INNER_BANK_CODE")
    private String innerBankCode;

    /**
     * 机构联系人
     */
    @TableField("CONTACT_NAME")
    private String contactName;

    /**
     * 机构编码级别
     *
     * 00-总行
     * 01-分行
     * 02-支行
     * 03-营业部
     */
    @TableField("ORG_LEVEL")
    private String orgLevel;

    /**
     * 联系人地址
     */
    @TableField("CONTACT_ADDRESS")
    private String contactAddress;

    /**
     * 联系人传真
     */
    @TableField("CONTACT_FAX")
    private String contactFax;

    /**
     * 联系人邮箱
     */
    @TableField("CONTACT_MAIL")
    private String contactMail;

    /**
     * 联系人电话
     */
    @TableField("CONTACT_PHONE")
    private String contactPhone;

    /**
     * 联系人邮编
     */
    @TableField("CONTACT_ZIP_CODE")
    private String contactZipCode;

    /**
     * 状态
     *
     * 00-非正式,
     * 01-正式,
     * 02-停用,
     * 03-已注销
     */
    @TableField("ORG_STATUS")
    private String orgStatus;

    /**
     * 创建机构
     */
    @TableField("CRT_ORG_ID")
    private String crtOrgId;

    /**
     * 创建人
     */
    @TableField("CREATE_BY")
    private String createBy;

    /**
     * 创建时间
     */
    @TableField("CREATE_TIME")
    private LocalDateTime createTime;

    /**
     * 修改人
     */
    @TableField("MODIFY_BY")
    private String modifyBy;

    /**
     * 修改时间
     */
    @TableField("MODIFY_TIME")
    private LocalDateTime modifyTime;
}
